package com.qfedu.openapi.web.master.controller;

import com.github.pagehelper.PageInfo;
import com.qfedu.openapi.web.master.entity.User;
import com.qfedu.openapi.web.master.service.UserService;
import com.qfedu.openapi.web.master.vo.MessageVo;
import com.qfedu.openapi.web.master.vo.PageVo;
import com.qfedu.openapi.web.master.vo.TableVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

//用户
@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/test1/{id}")
    @ResponseBody
    public User findUserById(@PathVariable Integer id){
        return userService.findUserById(id);
    }

    //展示所有用户并分页(界面展示以table的形式)
    @RequestMapping("/getAll")
    public String  findALLUser(HttpServletRequest request, PageVo pageVo){
        PageInfo<User> pageInfo= userService.findAllUser(pageVo);
        request.setAttribute("pageInfo",pageInfo);
        return "forward:/user.jsp";
    }

    @RequestMapping("/getAll1")
    @ResponseBody
    public PageInfo<User>  findALLUser(PageVo pageVo){
        PageInfo<User> pageInfo= userService.findAllUser(pageVo);//查询pageInfo相关信息
        return pageInfo;
    }

    //展示用户--->json字符串
    @RequestMapping("/getAllUsers")
    @ResponseBody
    public TableVo<User> test4(PageVo pageVo, User user){
        TableVo<User> tableVo = new TableVo<>();
        PageInfo<User> pageInfo= userService.findAllUser(pageVo,user);
        tableVo.setCode("0");//layui要求code为0表示查询成功
        tableVo.setCount(pageInfo.getTotal());//数据总条数
        tableVo.setMsg("ok");
        tableVo.setData(pageInfo.getList());//数据结果集
        return tableVo;
    }

    //添加用户
    @RequestMapping("/add")
    @ResponseBody
    public MessageVo addUser(User user){
        int a=userService.addUser(user);
        MessageVo messageVo = new MessageVo();
        //增加一次增加一条数据--->返回一行
        messageVo.setStatus(a==1?true:false);
        messageVo.setMessage(a==1?"success":"failed");
        messageVo.setData(user);
        return messageVo;
    }

    //删除用户
    @RequestMapping("/del")
    @ResponseBody
    public MessageVo delUser(Integer[] ids){
        int a=userService.delUser(ids);
        MessageVo messageVo = new MessageVo();
        //删除可以删多条,返回的行数大于1
        messageVo.setStatus(a>0?true:false);
        messageVo.setMessage(a>0?"success":"failed");
        return messageVo;
    }

    //修改用户
    @RequestMapping("/update")
    @ResponseBody
    public MessageVo delUser(User user){
        int a=userService.updateUser(user);
        MessageVo messageVo = new MessageVo();
        //修改一次修改一条数据--->返回一行
        messageVo.setStatus(a==1?true:false);
        messageVo.setMessage(a==1?"success":"failed");
        return messageVo;
    }
}
